home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 52
/
Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso
/
Aminet
/
game
/
misc
/
WormWars.lha
/
WormWars
/
Source
/
system.h
< prev
next >
Wrap
C/C++ Source or Header
|
2002-10-21
|
51KB
|
1,110 lines
/* $Filename: WormWars/Source/system.h
* $VER: WormWars 7.21a for Amiga
*
* © Copyright 2002 James R. Jacobs. Freely distributable.
#INCLUDES -------------------------------------------------------------- */
#include <exec/exec.h>
#include <exec/memory.h>
#include <pragmas/exec_pragmas.h>
#include <clib/exec_protos.h>
#include <exec/execbase.h>
#include <intuition/intuition.h>
#include <intuition/gadgetclass.h> /* STRINGA_ReplaceMode */
#include <intuition/intuitionbase.h> /* struct IntuitionBase */
#include <pragmas/intuition_pragmas.h>
// #include <pragmas/asl_pragmas.h>
#include <libraries/asl.h> /* ASL_FileRequest */
#include <libraries/gadtools.h> /* struct StringInfo */
#include <pragmas/gadtools_pragmas.h>
#include <devices/audio.h>
#include <devices/gameport.h> /* struct GamePortTrigger */
// #include <pragmas/dos_pragmas.h>
#include <dos/dosextens.h> /* struct Process */
#include <dos/dos.h>
#include <graphics/gfxbase.h>
#include <graphics/displayinfo.h> /* PAL_MONITOR_ID, etc. */
#include <pragmas/graphics_pragmas.h>
#include <libraries/iffparse.h>
#include <pragmas/iffparse_pragmas.h>
#include <utility/date.h> /* struct DateStamp */
#include <pragmas/utility_pragmas.h>
#include <workbench/workbench.h> /* struct DiskObject */
#include <pragmas/wb_pragmas.h>
#include <hardware/cia.h> /* struct CIA */
#include <libraries/lowlevel.h>
// #include <libraries/amigaguide.h>
#include <stdio.h> /* FILE, printf() */
#include <stdlib.h> /* EXIT_SUCCESS, EXIT_FAILURE */
#include "diff.h"
#include "same.h"
#include "libproto.h"
/* joysticks */
#define JOYUP 1
#define JOYDOWN 2
#define JOYLEFT 4
#define JOYRIGHT 8
#define JOYFIRE1 16
#define JOYFIRE2 32
#define POTGOR *(UWORD *)0xDFF016
#define OLD 1
#define NEW 0
/* #DEFINES ---------------------------------------------------------------
Help|About... window */
#define ABOUTLINES 6
#define ABOUTSHADOW DARKGREY
#define ABOUTSHINE LIGHTGREY
#define PROJECTX 128
#define PROJECTY 75
#define KICKSTARTX 104
#define KICKSTARTY 91
#define WORKBENCHX 104
#define WORKBENCHY 99
/* fxable/musicable */
#define FAILED 0 // tried and failed
#define SUCCEEDED 1 // tried and succeeded
#define UNTRIED 2 // untried, will try at startup
#define DEFER 3 // untried, will try when needed
/* miscellaneous */
#define ANIMDELAY 1800
#define TSOFFSET 200 // you can adjust y-positions of high scores by adjusting this
#define ENTIREXPIXEL 640
#define ENTIREYPIXEL 512
/* constant strings used more than once */
#define TITLEBAR "Worm Wars 7.21a"
#define PATTERN "(#?.fset)"
#define OLDKICKSTART "Worm Wars: You need Kickstart R2.04+!\n(Can't open intuition.library V37+!)\n"
/* object descriptions (in pixels) */
#define FIRSTDESCX 130
#define SECONDDESCX (SCREENXPIXEL - FIRSTDESCX)
#define DESCY 3
/* ARRAYS ---------------------------------------------------------------- */
#define CREATUREHELPS 15
struct
{ UBYTE image;
STRPTR desc;
ULONG score,
pain;
} creaturehelp[CREATUREHELPS + 1] =
{ {BIRD, "Bird", SCORE_BIRD, PAIN_BIRD},
{CLOUD, "Cloud", SCORE_CLOUD, PAIN_CLOUD},
{DOG, "Dog", SCORE_DOG, PAIN_DOG},
{FIRSTDRIP, "Drip", SCORE_DRIP, PAIN_DRIP},
{FISH, "Fish", SCORE_FISH, PAIN_FISH},
{GIRAFFE, "Giraffe", SCORE_GIRAFFE, PAIN_GIRAFFE},
{GOAT, "Goat", SCORE_GOAT, PAIN_GOAT},
{LION, "Lion", SCORE_LION, PAIN_LION},
{ORB, "Orb", SCORE_ORB, PAIN_ORB},
{OCTOPUS, "Octopus", SCORE_OCTOPUS, PAIN_OCTOPUS},
{OTTER, "Otter", SCORE_OTTER, PAIN_OTTER},
{PENGUIN, "Penguin", SCORE_PENGUIN, PAIN_PENGUIN},
{PROTECTOR, "Protector", 0, PAIN_PROTECTOR},
{SLIME, "Slime", 0, PAIN_SLIME},
{WHIRLWIND, "Whirlwind", SCORE_WHIRLWIND, PAIN_WHIRLWIND},
{LASTHEAD, "Worm", 0, PAIN_HEAD}
};
STRPTR objectdesc[LASTOBJECT + 1] =
{ "AFFIXER: Stops protectors rotating.",
"AMMO: 2-6 bullets.",
"ARMOUR: Immune to most damage.",
"BIAS: Rules changes in your favour.",
"BOMB: An explosion.",
"BONUS: Awards the next number.",
"BRAKES: Enables very slow speed.",
"CLOCK: Extra time.",
"CONVERTER: Fragments to missiles.",
"CUTTER: Cuts a tunnel through tail.",
"CYCLONE: Unleashes a whirlwind.",
"ENCLOSER: Rectangular enclosure.",
"GLOW: Leaves a glowing tail.",
"GROWER: Enlarges silver and gold.",
"HEALER: 100/200 lives.",
"ICE: Freezes enemies.",
"LIFE: 2-6 lives.",
"LIGHTNING: Flashes around tail.",
"MAGNET: Attracts all objects.",
"MISSILE: A guided missile.",
"MULTIPLIER: More points.",
"POWER: Thicker bullets.",
"PROTECTOR: An orbiting companion.",
"PULSE: Fragment explosion.",
"PUSHER: Lets you push things.",
"REMNANTS: Bullets leave a trail.",
"SIDESHOT: Shoot sideways.",
"SLAYER: Smart bomb.",
"SLOWER: Slows creatures down.",
"SWITCHER: Changes tail colours.",
"TREASURE: Treasure level.",
"UMBRELLA: Skips 2-3 levels."
};
UWORD chip LogoData[8968] =
{
/* Plane 0 */
15360,480,30,0,2,8,0,0,1,0,32,0,32,0,0,0,0,0,0,
53120,1660,103,49152,3588,16,0,256,2,0,16,0,35,0,1,32768,0,0,0,
3456,108,6,49152,12292,16,0,128,2,0,3,65535,65503,59392,1,32768,0,0,0,
3584,112,7,0,16384,0,0,0,0,64,1,65535,65503,63488,0,0,0,0,6,
7168,224,14,0,32768,0,0,0,0,0,0,0,64,31744,0,0,0,0,6,
3328,104,6,32769,8192,0,0,0,0,0,0,21845,21834,7680,0,0,0,0,24,
3072,96,6,2,24578,43657,0,2,43680,36864,0,0,64,3840,0,0,0,0,24,
3328,112,14,32770,32832,0,0,0,0,0,1,0,64,1920,0,0,0,0,0,
7168,224,6,4,33280,0,0,0,0,0,3,36863,65496,896,0,0,0,0,64,
3328,96,6,32772,33792,14,0,0,1,49152,1,32768,68,896,0,0,0,0,0,
3072,96,6,4,2112,1,0,0,0,8192,1,40960,9249,16832,0,0,0,0,256,
3584,96,15,8,4,16,20480,1,2,2560,1,33792,64544,448,0,0,0,0,32,
7168,224,6,8,4,16,0,0,8194,0,1,49152,16,8352,2,43666,18724,37449,8192,
3328,96,6,32776,2,8,2056,0,1,256,1,32768,0,128,0,73,9362,9362,160,
3072,96,6,0,64,0,0,0,0,0,3,40960,0,4672,2,43652,37444,34848,32768,
7424,96,14,32768,128,0,1040,1,0,144,1,32768,30720,800,0,0,0,0,160,
3072,224,6,0,256,0,8,0,0,16,1,49153,40704,336,0,0,0,0,64,
3584,96,7,0,256,0,20,0,0,24,1,32768,6912,256,0,0,0,0,128,
7168,96,6,0,512,0,0,0,0,10,3,32768,7168,464,0,0,0,0,32,
3072,96,14,32768,512,0,4,0,0,0,1,32768,14336,432,0,0,0,0,128,
3072,112,6,0,2560,0,4,0,0,0,1,32768,6656,896,0,0,0,0,64,
3072,96,6,32768,2560,0,8,0,0,0,1,32768,6144,384,0,0,0,0,128,
7168,96,14,0,2560,0,0,0,0,0,1,49152,7168,384,0,0,0,0,32,
3072,224,6,32770,512,0,0,0,0,0,1,32768,6144,448,0,0,0,0,128,
3072,96,6,2,2560,0,0,0,0,0,1,32768,14336,384,0,0,0,64,64,
3072,96,7,2,512,0,8,0,0,0,1,49152,6144,896,0,0,0,384,128,
7168,96,14,2,512,0,0,0,0,0,1,32768,6144,384,0,0,0,384,16416,
3072,224,6,32770,2560,0,8,0,0,0,3,32768,6144,384,0,0,0,0,128,
3072,96,6,2,512,0,0,0,0,0,1,32768,14336,384,0,0,0,0,64,
3072,96,7,0,512,0,0,0,0,0,1,32768,6144,896,0,0,0,0,0,
7168,96,6,2,2560,0,8,0,0,0,1,49152,6144,384,0,0,0,0,160,
3072,224,6,32768,512,0,0,0,0,0,1,32768,6144,384,0,0,0,0,16448,
3072,96,6,2,2560,0,8,0,0,0,3,32768,14336,448,0,0,0,0,128,
3072,0,15,0,2560,0,0,0,0,0,1,32768,6144,896,0,0,0,0,16416,
7168,0,6,0,512,0,0,0,0,0,1,32768,6144,384,0,0,0,0,128,
3072,0,6,32768,0,0,0,0,0,0,1,32768,6144,384,0,0,0,0,64,
3072,0,14,0,0,0,8,0,0,0,3,32768,14336,384,0,0,0,0,0,
3072,0,6,32768,0,0,0,64,0,0,1,32768,6144,896,0,0,0,0,128,
7168,0,6,0,0,0,8,0,32768,0,1,32768,6144,384,0,0,0,0,16384,
3072,0,15,0,0,0,0,64,0,0,1,32768,6144,384,0,0,0,0,128,
3072,0,12,32768,0,0,16,0,32768,0,3,32768,14336,384,0,0,0,0,0,
3072,0,16413,0,16386,10,1024,0,32768,0,1,32768,6144,896,0,0,0,0,128,
7200,0,33850,0,8196,16,16416,0,32768,0,1,32768,6144,384,0,0,0,0,0,
3136,0,33008,0,8196,16,0,0,32768,0,1,32768,6144,384,0,0,0,0,0,
3263,65535,32711,0,4096,0,112,0,32768,0,3,32768,14336,384,0,0,0,0,128,
3199,65535,32594,0,4096,0,288,0,0,0,1,32768,6144,896,0,0,0,0,0,
6144,1,262,0,2048,0,2144,0,32768,0,1,32768,6144,384,0,0,0,0,0,
170,43691,10796,0,1026,43653,21184,0,0,0,1,32768,6144,384,0,0,0,0,128,
0,1,64,0,768,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,
0,1,384,0,0,0,6144,0,0,0,0,0,0,0,0,0,0,0,0,
4095,65535,32256,0,0,15,57344,0,0,0,0,0,0,0,0,0,0,0,16512,
0,1,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,32768,0,4,16,0,0,0,0,0,0,0,0,0,0,0,0,16512,
0,0,32768,0,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,16384,0,2,8,0,0,0,0,0,0,0,0,0,0,0,0,16512,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16512,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
0,0,0,1,0,8,0,0,1,0,0,1,0,0,0,0,0,0,16384,
15360,480,30,0,0,16,0,256,2,0,0,2,0,0,0,0,0,0,128,
53120,1660,103,49152,0,16,0,128,2,0,0,98,0,320,0,0,0,0,0,
3456,108,6,49152,0,0,0,0,0,64,0,5117,65535,64736,0,0,0,0,128,
3584,112,7,0,0,0,0,0,0,0,0,18429,65535,64224,0,0,0,0,0,
7168,224,14,0,0,0,0,0,0,0,0,3588,0,480,0,0,0,0,128,
3328,104,6,32769,21845,21770,32768,2,43680,36864,1,7212,43690,44000,0,0,0,0,0,
3072,96,6,0,0,0,0,0,0,0,0,6148,0,480,0,0,0,0,128,
3328,112,14,32768,0,0,0,0,0,0,0,12292,0,992,0,0,0,0,0,
7168,224,6,0,0,14,0,0,1,49152,0,8205,65535,63712,0,0,0,0,128,
3328,96,6,32768,0,1,0,0,0,8192,0,24596,0,480,0,0,0,2,0,
3072,96,6,0,0,16,20480,1,2,2560,0,24898,0,64,0,0,0,0,128,
3584,96,15,0,0,16,0,0,8194,0,0,16386,0,128,0,0,0,6,0,
7168,224,6,0,0,8,2056,0,1,256,0,16897,0,0,0,0,0,6,0,
3328,96,6,32768,0,0,128,0,0,0,0,20480,0,0,0,0,0,0,16536,
3072,96,6,0,0,0,1160,1,0,144,0,17408,0,0,0,0,0,0,24,
7424,96,14,32768,0,0,128,0,0,16,5,16384,0,0,0,0,0,6,16512,
3072,224,6,0,0,0,12,0,0,24,7,49152,0,0,0,0,0,6,8,
3584,96,7,0,0,0,0,0,0,10,12,24576,0,0,0,0,0,0,152,
7168,96,6,0,0,0,4,0,0,0,4,24576,0,0,0,0,0,0,16408,
3072,96,14,32768,0,0,4,0,0,0,4,12288,0,0,0,0,0,0,24,
3072,112,6,0,0,0,8,0,0,0,12,12288,0,0,0,0,0,0,152,
3072,96,6,32768,0,0,0,0,0,0,4,14336,0,0,0,0,0,0,24,
7168,96,14,0,68,0,512,0,0,0,2,7169,4,16384,0,0,0,0,152,
3072,224,6,32768,8,0,0,0,0,0,0,3842,9,36864,0,0,0,0,24,
3072,96,6,0,4096,0,520,0,0,0,0,2041,65511,62464,0,0,0,0,16408,
3072,96,7,0,8192,0,1024,0,0,0,0,1021,65527,64512,0,0,0,0,152,
7168,96,14,0,16384,0,1024,0,0,0,0,4,20,7808,0,0,0,0,16408,
3072,224,6,32768,33280,0,1024,0,0,0,0,4,34960,8064,0,0,0,0,128,
3072,96,6,0,1024,8,1032,0,0,0,0,0,0,1408,0,0,0,0,8,
3072,96,7,1,2056,32,512,0,0,0,0,2,8,1728,0,0,0,0,152,
7168,96,6,0,4100,16,0,0,0,0,0,1,4,2752,0,0,0,0,24,
3072,224,6,32770,0,0,0,0,0,0,0,0,0,864,0,0,0,0,16384,
3072,96,6,0,0,0,8,0,0,0,0,0,0,864,0,0,0,0,128,
3072,0,15,0,0,0,0,0,0,0,0,0,0,864,0,0,0,0,16384,
7168,0,6,0,0,0,8,0,0,0,0,0,0,816,0,0,0,0,128,
3072,0,6,32768,0,0,0,0,0,0,0,0,0,880,0,0,0,0,0,
3072,0,14,0,0,0,0,64,0,0,0,0,0,816,0,0,0,0,0,
3072,0,6,32768,0,0,0,0,32768,0,0,0,0,848,0,0,0,0,0,
7168,0,6,0,0,0,8,64,0,0,0,0,0,784,0,0,0,0,0,
3072,0,15,0,0,0,16,0,32768,0,0,0,0,688,0,0,0,0,0,
3072,0,12,32768,4,10,0,0,32768,0,2,0,8,3600,0,0,0,0,0,
3072,0,16413,0,8,16,32,0,32768,0,4,0,16,3328,0,0,0,0,0,
7200,0,33850,0,8,16,0,0,32768,0,4,0,16,6160,0,0,0,0,0,
3136,0,33008,0,8192,0,112,0,32768,0,15,65535,65519,61952,0,0,0,0,0,
3263,65535,32711,0,8192,0,288,0,0,0,15,65535,65519,53248,0,0,0,0,0,
3199,65535,32594,0,4096,0,2144,0,32768,0,8,0,32,17408,0,0,0,0,0,
6144,1,262,2,2053,21770,41664,0,0,0,10,43690,43685,2048,0,0,0,0,0,
170,43691,10796,0,1536,0,1024,0,0,0,8,0,32,8192,0,0,0,0,0,
0,1,64,0,0,0,6144,0,0,0,8,0,35,16384,0,0,0,0,0,
0,1,384,0,0,15,57344,0,0,0,15,65535,65516,0,0,0,0,0,0,
4095,65535,32256,0,192,0,0,0,0,0,0,0,33,0,0,0,0,0,0,
0,1,0,0,8,16,0,0,0,0,0,0,16,0,0,0,0,0,0,
0,0,32768,0,8,16,0,0,0,0,0,0,16,0,0,0,0,0,0,
0,0,32768,0,4,8,0,0,0,0,0,0,8,0,0,0,0,0,0,
/* Plane 1 */
15360,480,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
3968,124,7,49152,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,
3456,108,6,49152,0,0,49152,0,0,6144,3,65535,65503,59392,0,0,0,0,0,
3584,112,7,0,1979,65519,64000,31,65533,65280,1,65535,65503,63488,6,0,0,0,0,
7168,224,14,0,7419,65519,65024,15,65533,65408,0,0,64,31744,6,0,0,0,0,
3072,96,6,0,1000,34,7936,0,4,17344,0,0,64,7680,6,0,0,0,0,
3072,96,6,0,3864,32,1920,0,4,240,0,0,64,3840,6,0,0,0,0,
3072,112,14,0,3336,32,960,0,4,112,1,0,64,1920,31,65535,65535,65535,65024,
7168,224,6,0,6152,32,480,8,4,56,3,36863,65472,896,31,65535,65535,65535,65024,
3072,96,6,0,12299,65504,224,28,32764,28,1,32768,64,896,31,65535,65535,65535,63488,
3072,96,6,0,24584,32,224,12,4,28,1,32768,0,448,31,65535,65535,65535,63488,
3584,96,15,0,24576,0,112,12,0,14,1,32768,0,448,24,0,0,0,0,
7168,224,6,0,24576,0,112,12,0,14,1,49152,0,128,24,0,0,0,0,
3072,96,6,0,49152,0,32,14,0,4,1,32768,0,128,24,0,0,0,0,
3072,96,6,0,49152,0,32,12,0,4,3,32768,0,512,24,0,0,0,0,
7168,96,14,0,49152,0,128,28,0,4,1,32768,30720,768,24,0,0,0,1536,
3072,224,6,0,49152,0,192,12,0,4,1,49152,7936,256,24,0,0,0,1536,
3584,96,7,0,49152,0,64,14,0,0,1,32768,6912,256,24,0,0,0,7680,
7168,96,6,0,49152,0,64,12,0,0,3,32768,7168,448,24,0,0,0,7680,
3072,96,14,0,49152,0,112,28,0,0,1,32768,14336,384,31,65535,65535,65504,7680,
3072,112,6,0,49152,0,96,12,0,0,1,32768,6144,896,31,65535,65535,65504,15872,
3072,96,6,0,49152,0,224,12,0,0,1,32768,6144,384,0,0,0,0,7680,
7168,96,14,0,49152,0,96,12,0,0,1,49152,7168,384,0,0,0,0,15872,
3072,224,6,0,49152,0,112,14,0,0,1,32768,6144,448,0,0,0,0,7680,
3072,96,6,0,49152,0,224,12,0,0,1,32768,14336,384,0,0,0,0,15872,
3072,96,7,0,57344,0,96,12,0,0,1,49152,6144,896,0,0,0,0,7680,
7168,96,14,0,49152,0,96,14,0,0,1,32768,6144,384,0,0,0,0,7680,
3072,224,6,0,49152,0,96,12,0,0,3,32768,6144,384,0,0,0,0,15872,
3072,96,6,0,49152,0,96,28,0,0,1,32768,14336,384,0,0,0,0,7680,
3072,96,7,0,49152,0,112,12,0,0,1,32768,6144,896,0,0,0,0,15872,
7168,96,6,0,49152,0,96,12,0,0,1,49152,6144,384,0,0,0,0,7680,
3072,224,6,0,49152,0,96,14,0,0,1,32768,6144,384,0,0,0,0,7680,
3072,96,6,0,49152,0,224,12,0,0,3,32768,14336,448,0,0,0,0,7680,
3072,0,15,0,49152,0,96,12,0,0,1,32768,6144,896,0,0,0,0,7680,
7168,0,6,0,49152,0,112,28,0,0,1,32768,6144,384,0,0,0,0,15872,
3072,0,6,0,49152,0,96,12,0,0,1,32768,6144,384,0,0,0,0,7680,
3072,0,14,0,16384,0,224,12,0,0,3,32768,14336,384,0,0,0,0,15872,
3072,0,6,0,16384,0,96,12,0,0,1,32768,6144,896,0,0,0,0,7680,
7168,0,6,0,28672,0,96,14,0,0,1,32768,6144,384,0,0,0,0,7680,
3072,0,15,0,8192,0,224,28,0,0,1,32768,6144,384,0,0,0,0,7680,
3072,0,12,0,12288,0,192,12,0,0,3,32768,14336,384,0,0,0,0,15872,
3072,0,28,0,6144,0,448,12,0,0,1,32768,6144,896,0,0,0,0,7680,
7168,0,56,0,3072,0,896,14,0,0,1,32768,6144,384,0,0,0,0,15872,
3072,0,240,0,1536,0,12032,28,0,0,1,32768,6144,384,0,0,0,0,7680,
3135,65535,32704,0,1019,65519,64512,12,0,0,3,32768,14336,384,0,0,0,0,15872,
3199,65535,32576,0,507,65519,61440,12,0,0,1,32768,6144,896,0,0,0,0,7680,
6144,1,256,0,8,32,0,12,0,0,1,32768,6144,384,0,0,0,0,15872,
0,3,0,0,24,32,0,14,0,0,1,32768,6144,384,0,0,0,0,7680,
0,1,0,0,8,32,0,12,0,0,0,0,0,0,0,0,0,0,15872,
0,1,0,0,248,32,0,0,0,0,0,0,0,0,0,0,0,0,7680,
4095,65535,0,0,11,65504,0,0,0,0,0,0,0,0,0,0,0,0,7680,
0,1,0,0,8,32,0,0,0,0,0,0,0,0,0,0,0,0,7680,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7680,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7680,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7680,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7680,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7680,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15872,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7680,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15872,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7680,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7680,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7680,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7680,
15360,480,30,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7680,
3968,124,7,49154,0,0,49152,0,0,6144,0,96,0,64,0,0,0,0,15872,
3456,108,6,49159,65535,65519,64000,31,65533,65280,0,1021,65535,64736,0,0,0,0,7680,
3584,112,7,7,65535,65519,65024,15,65533,65408,0,2045,65535,63712,0,0,0,0,15872,
7168,224,14,4,0,32,7936,0,4,17344,0,3588,0,480,0,0,0,0,7680,
3072,96,6,4,0,32,1920,0,4,240,0,7180,0,992,0,0,0,0,15872,
3072,96,6,4,0,32,960,0,4,112,0,6148,0,480,0,0,0,0,7680,
3072,112,14,4,0,32,480,8,4,56,0,12292,0,992,0,0,0,0,15872,
7168,224,6,7,65535,65504,224,28,32764,28,0,8204,0,224,0,0,0,0,7680,
3072,96,6,0,0,32,224,12,4,28,0,24580,0,480,0,0,0,0,15872,
3072,96,6,0,0,0,112,12,0,14,0,24576,0,64,0,0,0,0,7680,
3584,96,15,0,0,0,112,12,0,14,0,16384,0,0,0,0,0,0,15872,
7168,224,6,0,0,0,32,14,0,4,0,16384,0,0,0,0,0,0,7680,
3072,96,6,0,0,0,32,12,0,4,0,16384,0,0,0,0,0,0,7680,
3072,96,6,0,0,0,32,28,0,4,0,16384,0,0,0,0,0,0,7680,
7168,96,14,0,0,0,0,12,0,4,5,16384,0,0,0,0,0,0,7680,
3072,224,6,0,0,0,96,14,0,0,7,49152,0,0,0,0,0,0,15872,
3584,96,7,0,0,0,192,12,0,0,12,24576,0,0,0,0,0,0,7680,
7168,96,6,0,0,0,112,28,0,0,4,24576,0,0,0,0,0,0,7680,
3072,96,14,0,0,0,96,12,0,0,4,12288,0,0,0,0,0,0,7680,
3072,112,6,0,0,0,96,12,0,0,12,12288,0,0,0,0,0,0,15872,
3072,96,6,0,0,0,96,12,0,0,4,14336,0,0,0,0,0,0,7680,
7168,96,14,0,0,16,112,28,0,0,0,7168,0,0,0,0,0,0,15872,
3072,224,6,0,0,56,224,12,0,0,0,3840,1,36864,0,0,0,0,7680,
3072,96,6,0,231,65400,96,12,0,0,0,2041,65511,62464,0,0,0,0,7680,
3072,96,7,0,247,65404,96,12,0,0,0,1021,65527,64512,0,0,0,0,7680,
7168,96,14,0,144,248,112,28,0,0,0,4,20,7808,0,0,0,0,7680,
3072,224,6,0,16,112,96,12,0,0,0,4,16,8064,0,0,0,0,15872,
3072,96,6,0,0,64,96,12,0,0,0,0,0,1408,0,0,0,0,7680,
3072,96,7,0,0,0,96,28,0,0,0,0,0,1728,0,0,0,0,15872,
7168,96,6,0,0,0,240,12,0,0,0,0,0,704,0,0,0,0,7680,
3072,224,6,0,8192,0,96,12,0,0,0,0,0,864,0,0,0,0,7680,
3072,96,6,0,8192,0,96,28,0,0,0,0,0,864,0,0,0,0,7680,
3072,0,15,4,24576,0,96,12,0,0,0,0,0,864,0,0,0,0,7680,
7168,0,6,4,24576,0,224,12,0,0,0,0,0,816,0,0,0,0,7680,
3072,0,6,4,24576,0,96,14,0,0,0,0,0,880,0,0,0,0,0,
3072,0,14,4,24576,0,112,28,0,0,0,0,0,816,0,0,0,0,0,
3072,0,6,5,24576,0,96,12,0,0,0,0,0,784,0,0,0,0,0,
7168,0,6,7,57344,0,224,12,0,0,0,0,0,784,0,0,0,0,0,
3072,0,15,7,40960,0,192,28,0,0,0,0,0,560,0,0,0,0,0,
3072,0,12,6,61440,0,448,12,0,0,0,0,0,3600,0,0,0,0,0,
3072,0,28,4,22528,0,1920,12,0,0,4,0,0,3072,0,0,0,0,0,
7168,0,56,0,19584,0,7936,12,0,0,4,0,0,6144,0,0,0,0,0,
3072,0,240,0,2039,65519,64512,28,0,0,15,65535,65519,61440,0,0,0,0,0,
3135,65535,32704,0,1015,65519,61440,12,0,0,15,65535,65519,53248,0,0,0,0,0,
3199,65535,32576,0,16,32,0,12,0,0,8,0,32,16384,0,0,0,0,0,
6144,1,256,0,48,96,0,12,0,0,8,0,32,0,0,0,0,0,0,
0,3,0,0,16,32,0,12,0,0,8,0,32,0,0,0,0,0,0,
0,1,0,0,496,32,0,0,0,0,8,0,32,0,0,0,0,0,0,
0,1,0,0,23,65504,0,0,0,0,15,65535,65504,0,0,0,0,0,0,
4095,65535,0,0,16,32,0,0,0,0,0,0,32,0,0,0,0,0,0,
0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
/* Plane 2 */
32640,1020,63,49152,2044,65523,63488,511,65534,32512,31,65535,65487,30720,0,0,0,0,0,
8064,2300,143,49152,12793,65511,54784,255,65532,64192,39,65535,65484,58880,0,32767,65535,65535,65534,
8128,2302,143,57344,4091,65511,14720,319,65532,65328,12,0,32,4864,4,32767,65535,65535,65534,
16320,5630,159,57344,47108,16,1216,127,65535,65432,20,0,32,1792,7,65535,65535,65535,65528,
24384,250,47,40961,24836,16,448,175,65535,65528,10,65535,65471,33728,23,65535,65535,65535,65528,
40512,2802,79,8194,56343,65501,57584,87,65535,65534,33,10922,43701,57792,31,65535,65535,65535,65446,
16320,254,15,57345,32997,21846,63600,265,21855,28670,10,32768,39,61680,31,65535,65535,65535,65414,
7744,5626,175,8197,21156,16403,64572,84,23,16383,32774,18724,35121,30768,31,65535,65535,65535,65142,
24384,4350,15,40971,26021,5268,24076,58,18702,6143,32800,8192,36,48240,31,65535,65535,65535,65062,
40512,5370,95,8203,19380,17,44828,285,32766,9215,32778,22528,35,15480,31,65535,65535,65535,63958,
16320,6650,15,57355,6068,18,38686,94,49158,23039,49170,19613,56218,3600,31,65535,65535,65535,63622,
8000,4346,175,40967,40419,21128,34692,158,25761,4222,32774,31271,916,63016,31,65535,65535,65535,58958,
24512,6906,15,57350,40226,2089,15754,63,53525,17343,16422,10373,65487,24392,29,21869,46811,28086,50934,
40512,4346,95,8193,14985,41604,54738,319,17472,37119,16394,30720,14,46968,31,65462,56173,56173,55622,
24384,6650,47,40964,15792,7,12254,95,49152,58879,16400,18432,1,19880,29,21883,28091,30687,7158,
7744,4346,143,8192,15616,0,20842,158,16384,2607,16386,26624,34560,46280,25,4144,16,21390,28486,
24512,6906,15,57354,14848,0,12082,31,16384,1262,16426,14338,8192,16040,24,17733,19082,1056,26534,
8000,4346,95,40960,14848,0,3242,351,49152,295,16390,18434,9408,21224,26,8208,8257,20617,40822,
24128,5626,15,57349,14592,0,4542,62,16384,149,16400,26626,25472,20008,25,2698,35368,1059,57286,
8000,4346,175,8194,15360,0,6538,159,16384,297,16386,26625,1920,22088,31,65535,65535,65518,32630,
48960,6642,15,40968,13568,0,410,31,16384,669,49194,26628,9344,25704,31,65535,65535,65510,65446,
8000,4858,79,8193,12288,0,1298,351,16384,382,16390,26625,26496,19048,24,0,0,25,32630,
24384,6650,47,57348,13312,0,670,63,16384,511,18,2052,8320,25192,25,9288,35108,42268,65478,
8000,4346,79,8192,15360,0,2186,158,16384,24,6,18437,25728,17928,6,35090,8322,4592,32630,
48960,6394,31,40968,13312,0,542,62,16384,133,38,26628,1664,26216,14,8772,35368,34218,65454,
8000,4858,143,57344,7168,0,146,319,16384,0,10,14342,9856,16488,6,34832,8322,9824,32630,
24384,6650,47,57348,15360,0,2718,95,49152,0,6,26628,42624,27240,6,8837,2600,34405,16326,
8000,4346,79,8192,13312,0,402,63,16384,0,32,26630,26240,17000,1,51280,41090,8768,32622,
48960,6394,31,40968,15360,0,1182,287,16384,0,10,18436,1664,22104,5,33284,2596,37013,32694,
8000,762,79,57345,15360,0,394,94,16384,0,18,26630,9856,16488,0,0,0,0,65526,
24384,4602,31,40964,13312,0,2450,159,16384,0,6,2052,42624,25192,0,0,0,84,32582,
8000,1274,175,8192,15360,0,670,62,16384,0,38,22534,26240,19048,0,0,0,1,16294,
48960,2298,31,57352,13312,0,1042,350,49152,0,0,26628,1664,26120,0,0,0,36,32630,
8000,666,79,40962,13312,0,158,63,16384,0,18,26630,42624,16472,0,0,0,17,16326,
24384,5322,271,57349,15360,0,4746,223,16384,0,10,26628,9856,27240,0,0,0,68,32622,
8000,3060,335,8193,15104,0,7582,95,16384,0,38,26629,26240,16968,0,0,0,17,32694,
48960,4090,367,40971,48896,0,5138,223,49152,0,0,26628,1664,22120,0,0,0,4,65526,
8000,232,207,8193,49024,0,3226,63,16384,0,18,26630,9856,16488,0,0,0,80,32550,
24384,1032,639,57351,3456,0,8850,351,16384,0,10,26628,42624,25192,0,0,0,5,16326,
8000,8,431,40962,24512,0,4894,31,49152,0,38,26630,26240,19048,0,0,0,32,32534,
48960,0,3935,8204,53104,0,63278,159,16384,0,0,26628,1664,26216,0,0,0,20,65478,
8031,62619,40958,40964,42924,65521,64058,63,16384,0,18,26630,9856,16488,0,0,0,66,32534,
24335,63783,15357,40967,37881,65511,48218,287,16384,0,10,26628,42624,25192,0,0,0,16,65478,
7967,65535,16383,24585,23033,65511,53490,95,16384,0,38,26629,26240,19048,0,0,0,4,65486,
48959,65535,65528,16399,11268,16,900,159,16384,0,0,26628,1664,26216,0,0,0,81,32518,
8063,65535,65517,57346,59908,16,3798,63,49152,0,18,26630,9856,16488,0,0,0,4,65494,
23551,65535,65528,40965,41975,65503,63370,159,16384,0,6,26628,42624,27240,0,0,0,32,32710,
5461,21847,54721,16385,50149,21850,44052,63,16384,0,34,26624,26240,616,0,0,0,21,32526,
41489,1,37045,0,43140,1104,2896,351,16384,0,10,47106,10880,9576,0,0,0,64,65478,
2180,18773,34378,32769,25860,41242,58536,41,49152,0,19,31749,13952,21288,0,0,0,20,65494,
53247,65535,33205,0,45652,16,6480,155,49152,0,47,57350,64512,12232,0,0,0,0,16134,
57344,1,49918,0,22662,16,4000,382,0,0,31,59395,65024,16352,0,0,0,85,32758,
51882,38024,21856,0,10179,10893,22272,255,0,0,7,4096,12288,768,0,0,0,0,16230,
32768,16930,18256,0,6642,44,28928,28,0,0,16,24577,17920,4448,0,0,0,37,32742,
32768,136,45184,0,1793,43654,18432,129,0,0,0,0,0,0,0,0,0,16,16246,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,32758,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16230,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,32750,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,81,32614,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,65414,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,32558,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,16326,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,32534,
0,0,0,0,65535,65523,63488,511,65534,32512,0,510,32767,65472,0,0,0,18,16326,
17280,540,33,49155,65535,65519,54784,255,65532,64192,0,4093,65535,65504,0,0,0,4,32526,
4096,2176,136,7,65535,65511,63872,319,65532,59184,0,8188,65535,65264,0,0,0,86,65478,
4672,2194,137,8199,65535,65535,65216,96,2,152,0,9215,65535,65504,0,0,0,14,32534,
12736,5518,152,57351,65535,65535,65472,160,2,120,0,14335,65535,65008,0,0,0,32,65478,
17216,26,33,40967,65535,65535,65520,87,65531,48190,0,61439,65535,65520,0,0,0,9,32526,
37440,2706,73,8198,43690,43765,32752,265,21851,28430,0,65503,21845,22520,0,0,0,70,65446,
13248,158,9,57348,8192,177,65532,84,19,16271,32771,40950,256,2032,0,0,0,22,32518,
4672,5514,161,8197,2633,8820,24556,50,18698,6087,32770,65478,37961,12280,0,0,0,36,65454,
17216,4126,9,40967,65535,65521,45052,257,2,9187,32775,15902,0,2032,0,0,0,8,65286,
37440,5274,89,8196,8192,50,38910,82,49154,23011,49157,65198,0,2032,0,0,0,68,32702,
13248,6554,9,57346,35156,38028,34804,146,25761,4208,32783,64553,42154,38896,0,0,0,23,32542,
4416,4250,160,40962,8705,8712,6650,51,53525,17329,16399,62209,2304,9056,0,0,0,40,65510,
17344,6682,9,57347,34964,18598,34290,305,17472,37115,16398,64628,49738,35264,0,0,0,0,32758,
37440,4250,89,8192,0,7,11646,83,49152,58875,16399,58936,0,0,0,0,0,87,16230,
21312,6554,41,40960,0,0,21362,130,16384,2603,16399,61760,0,0,0,0,0,6,32742,
576,4250,129,8192,0,0,10106,19,16384,1258,16399,63104,0,0,0,0,0,40,16254,
21440,6682,9,57344,0,0,2546,337,49152,295,16399,60800,0,0,0,0,0,0,32758,
4416,4250,88,40960,0,0,4858,50,16384,149,16398,64640,0,0,0,0,0,80,65382,
16960,5530,9,57344,0,0,4346,131,16384,297,16397,61056,0,0,0,0,0,4,16358,
4928,4250,161,8192,0,0,2810,19,16384,669,49166,32448,0,0,0,0,0,34,32742,
45888,6530,9,40960,0,0,498,179,16384,382,16398,63408,0,0,0,0,0,16,65382,
4928,4762,73,8192,34,8720,1278,19,16384,511,14,31708,8737,0,0,0,0,68,65510,
17216,6554,33,57344,953,65532,506,323,16384,24,12,15870,65531,40960,0,0,0,17,32614,
4928,4122,73,8192,3891,65532,1790,19,16384,133,3,24444,65523,63488,0,0,0,36,32742,
45888,6298,25,40960,11007,65534,1266,179,16384,0,7,49151,65535,65024,0,0,0,1,16358,
4928,4762,136,57344,17151,65534,1022,19,16384,0,0,51199,65535,65408,0,0,0,84,32614,
17216,6554,33,57344,33791,65534,1023,323,16384,0,2,61446,31,65408,0,0,0,1,16358,
4928,4122,73,8193,5426,43774,3070,19,16384,0,1,8575,30583,32704,0,0,0,40,32638,
45888,6298,25,40963,43800,17652,1010,147,16384,0,0,36758,63032,65504,0,0,0,2,65526,
4928,666,72,57346,38690,8668,1278,67,16384,0,0,1513,23186,32736,0,0,0,80,32614,
17216,4506,25,40967,9281,5160,762,147,16384,0,0,6660,8193,6128,0,0,0,10,65510,
4928,1050,169,8196,30879,65520,254,83,16384,0,0,1023,65532,53232,0,0,0,32,16374,
45888,2202,25,57351,31712,0,2546,259,16384,0,0,0,6,61424,0,0,0,9,32614,
4928,666,64,40964,26048,0,4858,82,16384,0,0,0,1,29680,0,0,0,68,16366,
17216,5322,265,57348,25472,0,6386,19,16384,0,0,0,0,58352,0,0,0,17,32614,
4928,3060,329,8199,25472,0,4350,240,49152,0,0,0,0,47088,0,0,0,68,24678,
45888,4090,353,40966,64256,0,2810,3,16384,0,0,0,0,14320,0,0,0,17,2798,
4928,232,201,8199,63232,0,8702,339,16384,0,0,0,0,30640,0,0,0,56,30822,
17216,1032,633,57351,62848,0,7154,19,49152,0,0,0,0,22512,0,0,0,26,32102,
4928,8,416,40967,63872,1,63466,131,16384,0,0,0,0,55152,0,0,0,103,65416,
45888,0,3923,8199,65017,65521,65530,19,16384,0,1,65535,65523,57328,0,0,0,103,65424,
4959,62619,40930,40967,32307,65511,65498,179,16384,0,7,65535,65510,15920,0,0,0,95,65508,
17167,63783,15301,40966,57331,65511,65526,19,24576,0,15,65535,65511,65440,0,0,0,31,65506,
4895,65535,16143,24582,24575,65535,65412,323,16384,0,15,65535,65535,64848,0,0,0,36,31016,
45824,0,32824,16391,24575,65535,65246,19,49152,0,15,65535,65535,63344,0,0,0,17,30848,
4864,0,32941,57346,2047,65535,63368,179,16384,0,15,65535,65535,57456,0,0,0,24,33376,
17407,65534,65272,40960,38906,43765,23572,19,16384,0,13,21845,21882,61920,0,0,0,26,9312,
5461,21844,54721,16385,12568,34865,7024,179,16384,0,8,17476,17528,56544,0,0,0,0,0,
41489,0,37045,1,57338,8882,25768,43,49152,0,10,4369,4400,47424,0,0,0,0,0,
2180,18772,34378,32768,58431,65520,6480,473,16384,0,15,65535,65522,4800,0,0,0,0,0,
49152,0,33205,0,61720,56,7072,510,0,0,8,0,48,50432,0,0,0,0,0,
57344,0,49918,0,13189,18733,24192,511,0,0,6,43594,19020,58880,0,0,0,0,0,
51882,38024,21856,0,3924,4616,30976,56,32768,0,4,272,37002,15360,0,0,0,0,0,
32768,16930,18256,0,962,16518,18432,131,0,0,2,21572,1045,57344,0,0,0,0,0,
/* Plane 3 */
640,20,1,16384,1704,21841,22528,170,43690,11008,21,21845,21834,24576,0,0,0,0,0,
0,0,0,0,8201,21826,32768,170,43688,20480,5,43690,43651,512,0,10922,43690,43690,43690,
0,0,0,0,523,27300,49280,45,21844,32784,7,65535,65535,59648,4,21845,21845,21845,21844,
8320,5380,144,16384,4031,65535,64064,32,2,8,17,65535,65535,64000,7,23210,43690,43690,43688,
16448,2,32,8192,23803,65535,65152,128,2,16,8,0,64,64832,22,43885,46811,28086,56168,
32768,2560,64,0,35820,34,16208,64,0,1034,32,0,96,24192,23,27990,43690,43690,43684,
8384,6,0,24576,3868,48,6048,256,0,516,8,0,66,8048,15,43690,44373,21845,21764,
0,1280,160,0,3372,16419,2012,64,19,4227,32773,2340,35185,6032,31,65535,65535,65535,65042,
16448,4102,0,8200,22697,5300,17892,32,18698,5442,32803,36863,65504,43952,31,65535,65535,65535,65028,
32768,1032,80,8,12719,65505,43756,256,0,833,32777,38912,65,14248,31,65535,65535,65535,63570,
8384,6410,0,24576,25528,48,5610,64,49154,2433,16401,32920,920,448,31,65535,65535,65535,63492,
0,8,160,1,24803,21120,1136,128,1184,0,5,38944,4,21440,24,0,0,0,1036,
16576,6666,0,24576,25600,2088,5360,32,49429,16544,37,49280,43982,22656,24,0,0,0,658,
32768,8,80,1,49161,41600,21536,288,1088,192,9,38912,6,32912,24,0,0,0,20484,
64,6410,0,8196,52528,5,548,64,49152,42048,19,32768,0,2560,24,0,0,0,2578,
0,8,128,0,51200,0,4224,128,0,512,1,34816,32000,34560,25,4144,16,21390,11780,
16576,6666,0,24586,51200,0,960,0,16384,96,41,53248,7936,9472,24,17733,19082,1056,17922,
0,8,80,0,49664,0,2112,320,32768,289,5,34816,6976,264,26,8208,8257,20616,7700,
16448,5386,0,24581,51456,0,326,32,16384,129,19,40962,23936,16832,25,2698,35368,1059,56834,
256,8,160,0,50176,0,6258,129,0,296,16385,43009,14592,4488,31,65535,65535,65516,7700,
41280,6402,0,8200,50432,0,96,1,16384,13,49193,40964,6272,26496,31,65535,65535,65506,48642,
256,512,64,1,49152,0,1506,321,0,308,16389,43009,22912,2472,16,0,0,9,7700,
16704,6402,32,24580,50176,0,612,33,16384,426,17,49152,7168,24992,9,9288,35108,42252,48642,
256,0,64,0,53248,0,2162,128,0,8,5,32773,22528,1480,2,35090,8322,4368,7700,
41280,6146,16,8200,50176,0,740,32,0,4,37,34816,14976,25984,12,8772,35368,33930,48652,
0,512,128,16384,61440,0,98,288,16384,0,9,63494,6656,904,2,34832,8322,8768,7698,
16448,6402,32,24580,49152,0,2662,65,49152,0,5,32768,39040,27008,4,8837,2600,33349,7684,
0,0,64,0,50176,0,352,32,0,0,35,34822,22528,392,0,51280,41090,8768,15884,
41024,6146,16,8200,49152,0,1126,256,16384,0,9,32768,14976,21912,5,516,2596,37013,7698,
256,512,64,16385,50176,0,368,64,0,0,17,43014,6656,928,0,0,0,0,48660,
16704,258,16,8196,49152,0,2402,129,16384,0,5,49152,39552,25000,0,0,0,84,7682,
256,1024,160,0,50176,0,614,32,0,0,37,38918,23040,2464,0,0,0,1,7684,
41280,2050,16,24584,50176,0,1248,256,49152,0,3,40960,14976,26056,0,0,0,36,7698,
256,664,64,2,50176,0,102,33,0,0,17,43014,39424,920,0,0,0,17,7684,
16704,130,0,24580,50176,0,624,193,16384,0,9,40960,6784,27040,0,0,0,68,15884,
256,2388,256,1,51200,0,7526,65,0,0,37,43013,23040,392,0,0,0,17,7698,
41280,3434,96,8203,19456,0,224,129,49152,0,3,32768,14464,21888,0,0,0,4,48660,
0,104,64,0,50688,0,2146,32,0,0,17,34822,6144,904,0,0,0,80,7714,
16448,8,112,24582,30720,0,96,257,16384,0,9,32768,39040,24960,0,0,0,5,7746,
0,8,384,0,8960,0,998,0,0,0,37,34822,22528,2440,0,0,0,32,7700,
41024,0,0,8204,29248,0,710,128,16384,0,3,32768,14464,25984,0,0,0,20,48706,
10,45209,1280,32768,47400,21840,23488,33,0,0,17,34822,6144,904,0,0,0,66,7700,
16394,43010,4608,40965,36009,27298,9090,257,16384,0,9,32768,39040,24960,0,0,0,16,48706,
11,21867,10240,16384,5648,44450,61184,64,16384,0,37,34821,22528,2440,0,0,0,4,40524,
41216,0,32768,16398,11263,65519,64512,129,0,0,3,32768,14464,25984,0,0,0,81,15874,
512,0,5,49152,57855,65535,61524,32,0,0,17,34822,6144,904,0,0,0,4,40532,
17152,0,32776,8192,41480,32,2,128,16384,0,5,32768,39040,27008,0,0,0,32,15938,
0,0,0,1,49948,48,0,33,0,0,33,34816,22528,392,0,0,0,21,7692,
41489,0,36913,0,8332,1120,2896,320,16384,0,10,47106,10880,9568,0,0,0,64,48706,
2180,18772,576,0,16888,41274,49152,41,49152,0,1,31748,5120,264,0,0,0,20,40532,
49152,0,32821,0,8271,65520,272,11,32768,0,5,24582,21504,9864,0,0,0,0,7682,
57344,0,49900,0,4110,32,3712,84,0,0,22,43011,21504,13632,0,0,0,85,7732,
51882,38024,64,0,1411,10892,768,86,0,0,6,4096,8192,256,0,0,0,0,7746,
32768,16930,17728,0,4528,44,20480,12,0,0,0,24576,17920,352,0,0,0,37,7714,
0,136,45056,0,513,43654,16384,0,0,0,0,0,0,0,0,0,0,16,7796,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,7730,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,7748,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,15916,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,81,7746,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,48644,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,7724,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,7746,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,7700,
0,0,0,0,21845,21841,22528,170,43690,11008,0,170,10922,43712,0,0,0,18,7746,
16000,500,31,16384,43690,43693,16384,170,43688,20480,0,341,43690,43520,0,0,0,4,7692,
3968,124,7,49153,46421,21824,128,45,21844,38928,0,512,23381,21520,0,0,0,84,48706,
3456,108,6,49152,0,16,64,63,65535,65288,0,2,0,0,0,0,0,12,7700,
11904,5492,151,16384,0,16,128,143,65535,65424,0,8192,0,0,0,0,0,32,48706,
23616,226,46,8192,0,0,8272,64,4,18378,0,8194,0,16,0,0,0,9,7692,
35840,2656,70,0,0,16,4128,256,4,756,0,49152,0,8,0,0,0,66,48674,
11456,102,6,24576,8192,128,33820,64,23,4339,32769,1298,256,0,0,0,0,20,7684,
3072,1392,174,1,2633,8788,17412,40,18702,5498,32768,17088,37961,10248,0,0,0,36,48684,
23616,4326,6,8192,0,17,43532,284,32764,861,32769,1026,0,0,0,0,0,8,40450,
35840,1128,86,0,8192,0,5386,76,49158,2461,16385,34440,0,16,0,0,0,64,15924,
11456,6506,6,24576,35156,38028,1024,140,1184,14,13,33801,42154,36880,0,0,0,17,7690,
3584,104,175,2,8705,8704,128,44,49429,16558,3,32768,2304,8192,0,0,0,40,48676,
23744,6890,6,24579,34964,18598,0,302,1088,196,4,3188,49738,34880,0,0,0,0,7730,
35840,104,86,0,0,2,8260,76,49152,42052,3,48,0,0,0,0,0,83,7748,
3136,6506,6,8192,0,0,4864,156,0,516,4,0,0,0,0,0,0,4,7716,
7168,104,142,0,0,0,768,12,16384,100,2,640,0,0,0,0,0,40,7778,
19648,6890,6,24576,0,0,256,334,32768,289,0,1408,0,0,0,0,0,0,15876,
3584,104,87,0,0,0,514,44,16384,129,0,6144,0,0,0,0,0,80,40550,
23616,5482,6,24576,0,0,4096,157,0,296,16385,1152,0,0,0,0,0,4,7714,
3328,104,174,0,0,0,2560,13,16384,13,49154,2624,0,0,0,0,0,34,7716,
44352,6514,6,8192,0,0,258,173,0,308,16386,34192,0,0,0,0,0,16,48706,
3328,608,70,0,34,8720,1028,13,16384,426,8,348,8737,0,0,0,0,68,40484,
23872,6498,46,24576,40,43652,258,349,0,8,0,170,21842,8192,0,0,0,17,15942,
3328,224,70,0,33,21760,1540,13,16384,4,3,16468,27296,0,0,0,0,36,7714,
44352,6242,22,8192,512,2,2,172,0,0,4,40960,8,0,0,0,0,1,7716,
3072,608,135,16384,8,2,262,12,16384,0,0,49154,0,128,0,0,0,84,7748,
23616,6498,46,24576,0,0,263,348,0,0,0,61440,8,0,0,0,0,1,7716,
3072,224,70,0,290,43520,2310,12,16384,0,0,288,3,0,0,0,0,40,15970,
44096,6242,22,8194,33280,17408,256,141,0,0,0,1808,8736,49184,0,0,0,2,40452,
3328,608,71,16384,34338,8576,6,93,16384,0,0,1385,23186,8192,0,0,0,80,15972,
23872,354,22,8197,1,5128,0,141,0,0,0,2564,8192,4112,0,0,0,10,40484,
3328,1248,166,4,16394,44368,6,13,16384,0,0,682,43688,51200,0,0,0,32,7730,
44352,2146,22,24578,23520,0,2304,285,0,0,0,0,4,25600,0,0,0,9,7748,
3328,664,79,0,192,0,514,12,16384,0,0,0,1,12288,0,0,0,68,7724,
23872,130,6,24576,768,0,6144,13,0,0,0,0,0,24576,0,0,0,17,7746,
3328,2388,262,3,384,0,6,174,16384,0,0,0,0,5120,0,0,0,68,24644,
44352,3434,110,8192,39168,0,512,29,0,0,0,0,0,5120,0,0,0,17,2764,
3072,104,70,2,1024,0,262,268,16384,0,0,0,0,4096,0,0,0,48,10274,
23616,8,118,24576,4480,0,6912,12,0,0,0,0,0,5120,0,0,0,10,11588,
3072,8,399,0,2048,1,33282,156,16384,0,0,0,0,4096,0,0,0,34,43784,
44096,0,12,8193,296,43680,4096,12,16384,0,0,43690,43681,20480,0,0,0,67,21776,
3082,45209,1308,32771,17,21826,2058,172,16384,0,2,43701,21828,0,0,0,0,77,27972,
23562,43010,4664,40960,98,46757,16388,12,24576,0,2,56150,56162,544,0,0,0,21,21922,
3083,21867,10480,16386,20488,16,260,348,16384,0,0,0,16,1344,0,0,0,36,10536,
44351,65535,65472,16388,6152,16,94,12,0,0,0,0,0,80,0,0,0,17,20608,
3711,65535,32581,49152,1024,0,0,172,16384,0,0,0,16,80,0,0,0,16,33312,
23296,1,33032,8192,5896,16,16,12,0,0,0,0,0,61888,0,0,0,10,9280,
0,3,0,0,12296,34833,7008,172,16384,0,0,17476,17496,51360,0,0,0,0,0,
41489,1,36913,0,24066,8834,8224,43,49152,0,2,4369,4352,14336,0,0,0,0,0,
2180,18773,576,0,8,16,16,456,0,0,0,0,16,64,0,0,0,0,0,
53247,65535,32821,0,57352,24,6528,490,0,0,0,0,0,0,0,0,0,0,0,
57344,1,49900,0,385,18732,7296,426,0,0,6,43594,19020,17408,0,0,0,0,0,
51882,38024,64,0,1876,4608,22784,48,32768,0,0,272,37002,11264,0,0,0,0,0,
32768,16930,17728,0,832,16518,16384,3,0,0,0,21572,1041,24576,0,0,0,0,0
};
// About bitmap has 2 blank lines around it in every direction.
UWORD chip AboutData[456] =
{ /* Plane 0 */
0,0,0,
0,0,0,
4352,0,0,
4704,0,0,
2688,1024,0,
9984,1024,0,
8128,3584,0,
1824,3584,0,
2688,3840,0,
12864,3840,0,
1090,34688,0,
3,51072,128,
7,33728,256,
7,33728,1024,
15375,65535,65216,
15375,65504,1024,
7711,57584,256,
2591,61680,1152,
60,31864,1024,
60,7800,0,
1340,1980,0,
2040,1020,0,
1008,254,0,
1008,126,0,
480,31,0,
480,15,0,
0,0,0,
0,0,0,
0,0,0,
3643,37347,34944,
4388,37412,19584,
4388,37380,19584,
7972,37383,51840,
4388,37476,18816,
4388,37412,18816,
4384,37348,18560,
0,0,0,
0,0,0,
/* Plane 1 */
0,0,0,
0,0,0,
4352,14336,0,
4704,14336,0,
2688,30720,0,
9984,30720,0,
8128,61440,0,
1824,61440,0,
2689,57344,0,
12865,57344,0,
1089,16384,1024,
0,0,9216,
0,0,4096,
0,0,1024,
0,0,65216,
0,0,1024,
0,0,4352,
5140,0,8320,
3900,0,0,
3900,0,0,
1980,0,0,
2040,0,0,
1008,0,0,
1008,0,0,
480,0,0,
480,0,0,
0,0,0,
0,0,0,
0,0,0,
3643,37347,34944,
4388,37412,19584,
4388,37380,19584,
7972,37383,51840,
4388,37476,18816,
4388,37412,18816,
4384,37348,18560,
0,0,0,
0,0,0,
/* Plane 2 */
0,0,0,
0,0,0,
4352,0,0,
4704,0,0,
2688,0,0,
9984,0,0,
8128,0,0,
1824,0,0,
2688,0,0,
12864,0,0,
1090,32768,1024,
3,49152,9344,
7,32768,4352,
7,32768,1024,
15375,0,65024,
15375,0,1024,
7710,0,256,
7690,0,1152,
3840,0,1024,
3840,0,0,
1920,0,0,
1920,0,0,
768,0,0,
768,0,0,
0,0,0,
0,0,0,
0,0,0,
0,0,0,
0,0,0,
3643,37347,34944,
4388,37412,19584,
4388,37380,19584,
7972,37383,51840,
4388,37476,18816,
4388,37412,18816,
4384,37348,18560,
0,0,0,
0,0,0,
/* Plane 3 */
0,0,0,
0,0,0,
4352,14336,0,
4704,14336,0,
2688,30720,0,
9984,30720,0,
8128,61440,0,
1824,61440,0,
2689,57344,0,
12865,57344,0,
1091,49152,0,
3,49152,8320,
7,32768,4352,
7,32768,1024,
15,0,65216,
15,0,1024,
30,0,4096,
30,0,8192,
60,0,0,
60,0,0,
60,0,0,
120,0,0,
240,0,0,
240,0,0,
480,0,0,
480,0,0,
0,0,0,
0,0,0,
0,0,0,
3643,37347,34944,
4388,37412,19584,
4388,37380,19584,
7972,37383,51840,
4388,37476,18816,
4388,37412,18816,
4384,37348,18560,
0,0,0,
0,0,0
};
// PRIVATE STRUCTURES -----------------------------------------------------
struct Image Logo =
{ 0, 0,
304, 118, 4,
LogoData,
0x0f, 0x0,
NULL
};
struct Image About =
{ 0, 0,
44, 38, 4,
AboutData,
0x0f, 0x0,
NULL
};
MODULE struct EasyStruct EasyStruct =
{ sizeof(struct EasyStruct),
0,
TITLEBAR,
"Fieldset/highscores have been modified.",
"Continue|Cancel"
};
struct
{ WORD x, y;
STRPTR text;
} about[ABOUTLINES + 1] =
{ {72, 27, "Worm Wars 7.21a for Amiga" },
{72, 35, "Monday 21 October 2002" },
{72, 51, "© 2002 Amigan Software" },
{72, 59, "By James R. Jacobs" },
{16, 75, "Fieldset size: bytes"},
{16, 91, "Kickstart:" },
{16, 99, "Workbench:" }
};
struct
{ UBYTE scancode;
BYTE player, deltax, deltay, special;
BOOL down;
} key[NUMKEYS + 1] =
{ {Q, 0, -1, -1, MOVE, FALSE},
{W, 0, 0, -1, MOVE, FALSE},
{E, 0, 1, -1, MOVE, FALSE},
{A, 0, -1, 0, MOVE, FALSE},
{S, 0, 0, 1, MOVE, FALSE},
{D, 0, 1, 0, MOVE, FALSE},
{Z, 0, -1, 1, MOVE, FALSE},
{KEY_X, 0, 1, 1, MOVE, FALSE},
{C, 0, 1, 1, MOVE, FALSE},
{NUMERICSEVEN, 1, -1, -1, MOVE, FALSE},
{NUMERICEIGHT, 1, 0, -1, MOVE, FALSE},
{NUMERICNINE, 1, 1, -1, MOVE, FALSE},
{NUMERICFOUR, 1, -1, 0, MOVE, FALSE},
{NUMERICFIVE, 1, 0, 1, MOVE, FALSE},
{NUMERICSIX, 1, 1, 0, MOVE, FALSE},
{NUMERICONE, 1, -1, 1, MOVE, FALSE},
{NUMERICTWO, 1, 0, 1, MOVE, FALSE},
{NUMERICTHREE, 1, 1, 1, MOVE, FALSE},
{UP, 1, 0, -1, ONEHUMAN, FALSE},
{DOWN, 1, 0, 1, ONEHUMAN, FALSE},
{RIGHT, 1, 1, 0, ONEHUMAN, FALSE},
{LEFT, 1, -1, 0, ONEHUMAN, FALSE},
{SPACEBAR, 0, 0, 0, AMMO, FALSE},
{NUMERICZERO, 1, 0, 0, AMMO, FALSE},
{ENTER, 1, 0, 0, AMMO, FALSE},
{HELP, 0, 0, 0, TRAINER, FALSE},
{NUMERICSLASH, 0, 0, 0, TRAINER, FALSE},
{NUMERICASTERISK, 0, 0, 0, TRAINER, FALSE},
{NUMERICPLUS, 0, 0, 0, TRAINER, FALSE}
}; /* Never leave unused keys in this structure. */
/* #DEFINES -------------------------------------------------------------- */
#define ID_8SVX MAKE_ID('8','S','V','X')
#define ID_BODY MAKE_ID('B','O','D','Y')
#define ID_VHDR MAKE_ID('V','H','D','R')
#define PALCLOCK 3546895
#define NTSCCLOCK 3579545
#define SOFT 32
#define LOUD 64 /* = Unity */
/* PRIVATE STRUCTURES ---------------------------------------------------- */
#define INDEX_ANIMATIONS 21
#define INDEX_CREATEICONS 22
#define INDEX_THICKTAILS 23
struct NewMenu NewMenu[29 + 1] =
{ { NM_TITLE, "Project", 0 , 0, 0, 0}, // 0
{ NM_ITEM, "New", "N", 0, 0, 0}, // 1
{ NM_ITEM, "Open...", "O", 0, 0, 0}, // 2
{ NM_ITEM, "Revert", "R", 0, 0, 0}, // 3
{ NM_ITEM, NM_BARLABEL, 0 , 0, 0, 0}, // 4
{ NM_ITEM, "Save", "S", 0, 0, 0}, // 5
{ NM_ITEM, "Save As...", "A", 0, 0, 0}, // 6
{ NM_ITEM, NM_BARLABEL, 0 , 0, 0, 0}, // 7
{ NM_ITEM, "Delete...", "D", 0, 0, 0}, // 8
{ NM_ITEM, NM_BARLABEL, 0 , 0, 0, 0}, // 9
{ NM_ITEM, "Quit", "Q", 0, 0, 0}, // 10
{ NM_TITLE, "Edit", 0 , NM_MENUDISABLED, 0, 0}, // 11
{ NM_ITEM, "Cut", "X", 0, 0, 0}, // 12
{ NM_ITEM, "Copy", "C", 0, 0, 0}, // 13
{ NM_ITEM, "Paste", "V", 0, 0, 0}, // 14
{ NM_ITEM, NM_BARLABEL, 0 , 0, 0, 0}, // 15
{ NM_ITEM, "Erase", "E", 0, 0, 0}, // 16
{ NM_ITEM, "Delete", 0 , 0, 0, 0}, // 17
{ NM_ITEM, "Insert", 0 , 0, 0, 0}, // 18
{ NM_ITEM, "Append", 0 , 0, 0, 0}, // 19
{ NM_TITLE, "Settings", 0 , 0, 0, 0}, // 20
{ NM_ITEM, "Animations?", "T", CHECKIT | MENUTOGGLE, 0, 0}, // 21
{ NM_ITEM, "Create Icons?", "I", CHECKIT | MENUTOGGLE, 0, 0}, // 22
{ NM_ITEM, "Thick Tails?", "H", CHECKIT | MENUTOGGLE, 0, 0}, // 23
{ NM_TITLE, "Help", 0 , 0, 0, 0}, // 24
{ NM_ITEM, "Creatures...", "1", 0, 0, 0}, // 25
{ NM_ITEM, "Objects...", "2", 0, 0, 0}, // 26
{ NM_ITEM, NM_BARLABEL, 0 , 0, 0, 0}, // 27
{ NM_ITEM, "About...", "?", 0, 0, 0}, // 30
{ NM_END, NULL, 0 , 0, 0, 0} // 31
};
struct GamePortTrigger Trigger =
{ GPTF_DOWNKEYS,
65535,
1, 1
};
// gadgets
struct NewGadget StringGadget =
{ 235, 0,
181, 12,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
};
struct NewGadget PlayGadget =
{ 256, TSOFFSET + 124,
128, 12,
"Play Game",
NULL,
NULL,
NULL,
NULL,
NULL
};
struct NewGadget FEGadget =
{ 256, TSOFFSET + 140,
128, 12,
"Field Editor",
NULL,
NULL,
NULL,
NULL,
NULL
};
struct NewGadget RandomGadget =
{ 370, TSOFFSET + 170,
0, 0,
NULL,
NULL,
NULL,
NULL,
NULL
};
struct NewGadget CycleGadget =
{ 288, 0,
128, 13,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
};
struct
{ STRPTR filename;
BYTE volume;
ULONG length[2], size, speed, bank;
UBYTE* base;
} samp[SAMPLES + 1] =
{ { "PROGDIR:fx/dogawakens.8svx", SOFT}, /* FXBORN_DOG */
{ "PROGDIR:fx/dripborn.8svx", SOFT}, /* FXBORN_DRIP */
{ "PROGDIR:fx/goatborn.8svx", SOFT}, /* FXBORN_GOAT */
{"PROGDIR:fx/missileactive.8svx", LOUD}, /* FXBORN_MISSILE */
{ "PROGDIR:fx/orbborn.8svx", SOFT}, /* FXBORN_ORB */
{ "PROGDIR:fx/penguinborn.8svx", SOFT}, /* FXBORN_PENGUIN */
{"PROGDIR:fx/protectorborn.8svx", SOFT}, /* FXBORN_PROTECTOR */
{ "PROGDIR:fx/thud.8svx", SOFT}, /* FXDEATH_FRAGMENT (thud) */
{ "PROGDIR:fx/wormdeath.8svx", LOUD}, /* FXDEATH_WORM */
{ "PROGDIR:fx/timebombtick.8svx", LOUD}, /* FXDO_BOMB (tick) */
{ "PROGDIR:fx/enclosure.8svx", LOUD}, /* FXDO_ENCLOSE */
{ "PROGDIR:fx/goatfire.8svx", SOFT}, /* FXDO_GOAT (fire) */
{ "PROGDIR:fx/jump.8svx", SOFT}, /* FXDO_JUMP */
{ "PROGDIR:fx/orbsplit.8svx", SOFT}, /* FXDO_ORB (split) */
{ "PROGDIR:fx/getammo.8svx", LOUD}, /* FXGET_AMMO */
{ "PROGDIR:fx/cyclone.8svx", LOUD}, /* FXGET_CYCLONE */
{ "PROGDIR:fx/fx.8svx", SOFT}, /* FXGET_DRIP */
{ "PROGDIR:fx/getgrower.8svx", SOFT}, /* FXGET_GROWER */
{ "PROGDIR:fx/getobject.8svx", SOFT}, /* FXGET_OBJECT */
{ "PROGDIR:fx/getpowerup.8svx", LOUD}, /* FXGET_POWERUP */
{ "PROGDIR:fx/explode.8svx", SOFT}, /* FXGET_PULSE (explode) */
{ "PROGDIR:fx/getskull.8svx", SOFT}, /* FXGET_SKULL */
{ "PROGDIR:fx/amigan.8svx", SOFT}, /* FXHELP */
{ "PROGDIR:fx/shoot.8svx", SOFT}, /* FXUSE_AMMO */
{ "PROGDIR:fx/usearmour.8svx", SOFT}, /* FXUSE_ARMOUR */
{ "PROGDIR:fx/bombblast.8svx", SOFT}, /* FXUSE_BOMB */
{ "PROGDIR:fx/useteleport.8svx", SOFT}, /* FXUSE_TELEPORT */
{ "PROGDIR:fx/usetongue.8svx", SOFT}, /* FXBORN_BIRD */
{ "PROGDIR:fx/green.8svx", SOFT}, /* FXPAIN */
{ "PROGDIR:fx/red.8svx", SOFT},
{ "PROGDIR:fx/blue.8svx", SOFT},
{ "PROGDIR:fx/yellow.8svx", SOFT},
{ "PROGDIR:fx/highscore.8svx", SOFT}, /* FXAPPLAUSE (after each new hiscore) */
{ "PROGDIR:fx/defeat.8svx", LOUD}, /* FXGAMEOVER (if all worms are dead) */
{ "PROGDIR:fx/victory.8svx", SOFT}, /* FXCELEBRATE (if game succeeded) */
{ "PROGDIR:fx/click.8svx", SOFT}, /* FXCLICK (rundown, keypresses) */
{ "PROGDIR:fx/titlescreen.8svx", SOFT}, /* FXLAUNCH (title screen) */
{ "PROGDIR:fx/endoflevel.8svx", LOUD}, /* FXRIFF (after each rundown) */
{ "PROGDIR:fx/timealert.8svx", SOFT} /* FXSIREN (out of time) */
};
/* ARRAYS -------------------------------------------------------------- */
MODULE UBYTE* CycleOptions[4][6] =
{ { (UBYTE *) "None",
(UBYTE *) "Amiga",
(UBYTE *) "Joystick 3",
(UBYTE *) "Gamepad 3",
(UBYTE *) "Lt. Kybd",
NULL
},
{ (UBYTE *) "None",
(UBYTE *) "Amiga",
(UBYTE *) "Joystick 4",
(UBYTE *) "Gamepad 4",
(UBYTE *) "Rt. Kybd",
NULL
},
{ (UBYTE *) "None",
(UBYTE *) "Amiga",
(UBYTE *) "Joystick 2",
(UBYTE *) "Gamepad 2",
NULL,
NULL
},
{ (UBYTE *) "None",
(UBYTE *) "Amiga",
(UBYTE *) "Joystick 1",
(UBYTE *) "Gamepad 1",
NULL,
NULL
} };
MODULE STRPTR sfxerror[] =
{ "No errors.",
"Can't open file!",
"Can't read file!",
"Not an IFF 8SVX; too short!",
"Not an IFF FORM!",
"No memory for read!",
"Read error!",
"Malformed IFF; too short!",
"Not an IFF 8SVX!",
"No chip memory!"
};
/* PUBLIC STRUCTURES ----------------------------------------------------- */
struct Chunk
{ LONG ckID;
LONG ckSize;
LONG ckType;
void* ckData;
struct Chunk* ckNext;
};
/* TYPEDEFS --------------------------------------------------------------- */
typedef LONG Fixed; /* A fixed-point value, 16 bits to the left
of the point and 16 to the right. A Fixed
is a number of 2**16ths, ie. 65536ths. */
typedef struct
{ ULONG oneShotHiSamples, /* # samples in the high octave 1-shot part */
repeatHiSamples, /* # samples in the high octave repeat part */
samplesPerHiCycle; /* # samples/cycle in high octave, else 0 */
UWORD samplesPerSec; /* data sampling rate */
UBYTE ctOctave, /* # of octaves of waveforms */
sCompression; /* data compression technique used */
Fixed volume; /* playback nominal volume from 0 to Unity
(full volume). Map this value into the
output hardware's dynamic range (0-64). */
} Voice8Header;
/* Must have blank line at EOF. */